//import wx from "jweixin-module";
declare global {
  interface Window {
    wx: any
  }
}

let wx: any | null = null;
if (typeof window != 'undefined') {
  wx = window.wx
}

class WxJsSdk {
  //初始化注入权限验证配置
  initWxConfig(that: any) {
    let data = {
      url: encodeURIComponent(location.href)
    }
    //服务端签名接口 
    wx?.config({
     // debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
      appId: that.appId, // 必填，公众号的唯一标识
      timestamp: that.timestamp, // 必填，生成签名的时间戳
      nonceStr: that.nonceStr, // 必填，生成签名的随机串
      signature: that.signature, // 必填，签名
      jsApiList: [
        "checkJsApi",
        'onMenuShareTimeline',						//分享到微信朋友圈
        'onMenuShareAppMessage',					//分享给微信朋友
        'onMenuShareQQ',							//分享到QQ
        'onMenuShareQZone',							//分享到QQ空间
        "updateAppMessageShareData",  //分享到微信及QQ（新接口）
        "updateTimelineShareData"    //分享到朋友圈”及“分享到QQ空间（新接口）
    
      ],
    });

  }
  //微信分享朋友/朋友圈
  wxShare(data: any, cancelFn: () => void) {
    wx?.ready(function () {
      const shareObject = {
        title: data.title, //分享标题
        desc: data.des, //分享描述
        link: data.url,//分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
        imgUrl: data.img, //分享图标
        success: function (res: any) {


        },
        cancel: function (res: any) {
          cancelFn()
        }
      };
      //分享给朋友及分享到QQ -- 在需要自定义分享的页面中调用
      wx.updateAppMessageShareData(shareObject);
      //分享到朋友圈及分享到QQ空间  -- 在需要自定义分享的页面中调用
      wx.updateTimelineShareData(shareObject);
    });

  }
  //获取当前地理位置
  getLocation(callBack: any) {
    wx?.ready(function () {
      wx?.getLocation({
        type: 'wgs84', // 默认为wgs84的 gps 坐标，如果要返回直接给 openLocation 用的火星坐标，可传入'gcj02'
        success: function (res: any) {
          let latitude = res.latitude; // 纬度，浮点数，范围为90 ~ -90
          let longitude = res.longitude; // 经度，浮点数，范围为180 ~ -180。
          let speed = res.speed; // 速度，以米/每秒计
          let accuracy = res.accuracy; // 位置精度
          if (callBack) callBack(res);
        }
      })
    });
  }
  //微信扫一扫
  scanQRCode(callBack: any) {
    wx?.ready(function () {
      wx?.scanQRCode({
        needResult: 0, // 默认为0，扫描结果由微信处理，1则直接返回扫描结果，
        scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码，默认二者都有
        success: function (res: any) {
          let result = res.resultStr; // 当needResult 为 1 时，扫码返回的结果
          if (callBack) callBack(result);
        },
      });
    });
  }
  //上传图片
  uploadImage() {
    wx?.ready(function () {
      wx?.uploadImage({
        localId: '', // 需要上传的图片的本地ID，由 chooseImage 接口获得
        isShowProgressTips: 1, // 默认为1，显示进度提示
        success: function (res: any) {
          let serverId = res.serverId; // 返回图片的服务器端ID
        }
      });
    });
  }
  //下载图片
  downloadImage() {
    wx?.ready(function () {
      wx?.downloadImage({
        serverId: '', // 需要下载的图片的服务器端ID，由 uploadImage 接口获得
        isShowProgressTips: 1, // 默认为1，显示进度提示
        success: function (res: any) {
          let localId = res.localId; // 返回图片下载后的本地ID
        }
      });
    });
  }
}
const wxSdk = new WxJsSdk()
export default wxSdk
